home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / CIncludes / Packages.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-29  |  9.3 KB  |  289 lines  |  [TEXT/MPS ]

  1.  
  2. /************************************************************
  3.  
  4. Created: Friday, September 13, 1991 at 1:06 PM
  5.  Packages.h
  6.  C Interface to the Macintosh Libraries
  7.  
  8.  
  9.   Copyright Apple Computer, Inc. 1985-1991
  10.   All rights reserved
  11.  
  12. ************************************************************/
  13.  
  14.  
  15. #ifndef __PACKAGES__
  16. #define __PACKAGES__
  17.  
  18. #ifndef __TYPES__
  19. #include <Types.h>
  20. #endif
  21.  
  22. #ifndef __STANDARDFILE__
  23. #include <StandardFile.h>
  24. #endif
  25.  
  26. #ifndef __SCRIPT__
  27. #include <Script.h>
  28. #endif
  29.  
  30.  
  31. enum {
  32.  
  33.  listMgr = 0,                    /*list manager*/
  34.  dskInit = 2,                    /*Disk Initializaton*/
  35.  stdFile = 3,                    /*Standard File*/
  36.  flPoint = 4,                    /*Floating-Point Arithmetic*/
  37.  trFunc = 5,                    /*Transcendental Functions*/
  38.  intUtil = 6,                    /*International Utilities*/
  39.  bdConv = 7,                    /*Binary/Decimal Conversion*/
  40.  editionMgr = 11,                /*Edition Manager*/
  41.  currSymLead = 16,
  42.  currNegSym = 32,
  43.  currTrailingZ = 64,
  44.  currLeadingZ = 128,
  45.  zeroCycle = 1,                    /*0:00 AM/PM format*/
  46.  longDay = 0,                    /*day of the month*/
  47.  longWeek = 1,                    /*day of the week*/
  48.  longMonth = 2,                    /*month of the year*/
  49.  longYear = 3,                    /*year*/
  50.  supDay = 1,                    /*suppress day of month*/
  51.  supWeek = 2,                    /*suppress day of week*/
  52.  supMonth = 4                    /*suppress month*/
  53. };
  54. enum {
  55.  supYear = 8,                    /*suppress year*/
  56.  dayLdingZ = 32,
  57.  mntLdingZ = 64,
  58.  century = 128,
  59.  secLeadingZ = 32,
  60.  minLeadingZ = 64,
  61.  hrLeadingZ = 128,
  62.  
  63.  
  64. /* Regional version codes */
  65.  verUS = 0,
  66.  verFrance = 1,
  67.  verBritain = 2,
  68.  verGermany = 3,
  69.  verItaly = 4,
  70.  verNetherlands = 5,
  71.  verFrBelgiumLux = 6,            /* French for Belgium & Luxembourg */
  72.  verSweden = 7,
  73.  verSpain = 8,
  74.  verDenmark = 9,
  75.  verPortugal = 10,
  76.  verFrCanada = 11,
  77.  verNorway = 12
  78. };
  79. enum {
  80.  verIsrael = 13,
  81.  verJapan = 14,
  82.  verAustralia = 15,
  83.  verArabic = 16,                /* synonym for verArabia */
  84.  verFinland = 17,
  85.  verFrSwiss = 18,                /* French Swiss */
  86.  verGrSwiss = 19,                /* German Swiss */
  87.  verGreece = 20,
  88.  verIceland = 21,
  89.  verMalta = 22,
  90.  verCyprus = 23,
  91.  verTurkey = 24,
  92.  verYugoCroatian = 25,            /* Croatian system for Yugoslavia */
  93.  verIndiaHindi = 33,            /* Hindi system for India */
  94.  verPakistan = 34,
  95.  verLithuania = 41,
  96.  verPoland = 42,
  97.  verHungary = 43,
  98.  verEstonia = 44,
  99.  verLatvia = 45
  100. };
  101. enum {
  102.  verLapland = 46,
  103.  verFaeroeIsl = 47,
  104.  verIran = 48,
  105.  verRussia = 49,
  106.  verIreland = 50,                /* English-language version for Ireland */
  107.  verKorea = 51,
  108.  verChina = 52,
  109.  verTaiwan = 53,
  110.  verThailand = 54,
  111.  
  112. #define minCountry verUS
  113. #define maxCountry verThailand
  114.  
  115. /*Obsolete region code names, kept for backward compatibility*/
  116.  
  117.  verBelgiumLux = 6,                /* (use verFrBelgiumLux instead, less ambiguous) */
  118.  verArabia = 16,
  119.  verYugoslavia = 25,            /* (use verYugoCroatian instead, less ambiguous) */
  120.  verIndia = 33,                    /* (use verIndiaHindi instead, less ambiguous) */
  121.  
  122. /* Special script code values for International Utilities */
  123.  iuSystemScript = -1,            /* system script */
  124.  iuCurrentScript = -2,            /* current script (for font of grafPort) */
  125.  
  126. /* Special language code values for International Utilities */
  127.  iuSystemCurLang = -2,            /* current (itlbLang) lang for system script */
  128.  iuSystemDefLang = -3,            /* default (table) lang for system script */
  129.  iuCurrentCurLang = -4,            /* current (itlbLang) lang for current script */
  130.  iuCurrentDefLang = -5,            /* default lang for current script */
  131.  iuScriptCurLang = -6            /* current (itlbLang) lang for specified script */
  132. };
  133. enum {
  134.  iuScriptDefLang = -7,            /* default language for a specified script */
  135.  
  136. /* Table selectors for GetItlTable */
  137.  iuWordSelectTable = 0,            /* get word select break table from 'itl2' */
  138.  iuWordWrapTable = 1,            /* get word wrap break table from 'itl2' */
  139.  iuNumberPartsTable = 2,        /* get default number parts table from 'itl4' */
  140.  iuUnTokenTable = 3,            /* get unToken table from 'itl4' */
  141.  iuWhiteSpaceList = 4            /* get white space list from 'itl4' */
  142. };
  143.  
  144. enum {shortDate,longDate,abbrevDate};
  145. typedef unsigned char DateForm;
  146.  
  147. enum {mdy,dmy,ymd,myd,dym,ydm};
  148. typedef unsigned char DateOrders;
  149.  
  150.  
  151. struct Intl0Rec {
  152.  char decimalPt;                /*decimal point character*/
  153.  char thousSep;                    /*thousands separator character*/
  154.  char listSep;                    /*list separator character*/
  155.  char currSym1;                    /*currency symbol*/
  156.  char currSym2;
  157.  char currSym3;
  158.  unsigned char currFmt;            /*currency format flags*/
  159.  unsigned char dateOrder;        /*order of short date elements: mdy, dmy, etc.*/
  160.  unsigned char shrtDateFmt;        /*format flags for each short date element*/
  161.  char dateSep;                    /*date separator character*/
  162.  unsigned char timeCycle;        /*specifies time cycle: 0..23, 1..12, or 0..11*/
  163.  unsigned char timeFmt;            /*format flags for each time element*/
  164.  char mornStr[4];                /*trailing string for AM if 12-hour cycle*/
  165.  char eveStr[4];                /*trailing string for PM if 12-hour cycle*/
  166.  char timeSep;                    /*time separator character*/
  167.  char time1Suff;                /*trailing string for AM if 24-hour cycle*/
  168.  char time2Suff;
  169.  char time3Suff;
  170.  char time4Suff;
  171.  char time5Suff;                /*trailing string for PM if 24-hour cycle*/
  172.  char time6Suff;
  173.  char time7Suff;
  174.  char time8Suff;
  175.  unsigned char metricSys;        /*255 if metric, 0 if inches etc.*/
  176.  short intl0Vers;                /*region code (hi byte) and version (lo byte)*/
  177. };
  178.  
  179. typedef struct Intl0Rec Intl0Rec;
  180. typedef Intl0Rec *Intl0Ptr, **Intl0Hndl;
  181.  
  182. struct Intl1Rec {
  183.  Str15 days[7];                    /*day names*/
  184.  Str15 months[12];                /*month names*/
  185.  unsigned char suppressDay;        /*255 for no day, or flags to suppress any element*/
  186.  unsigned char lngDateFmt;        /*order of long date elements*/
  187.  unsigned char dayLeading0;        /*255 for leading 0 in day number*/
  188.  unsigned char abbrLen;            /*length for abbreviating names*/
  189.  char st0[4];                    /*separator strings for long date format*/
  190.  char st1[4];
  191.  char st2[4];
  192.  char st3[4];
  193.  char st4[4];
  194.  short intl1Vers;                /*region code (hi byte) and version (lo byte)*/
  195.  short localRtn[1];                /*now a flag for opt extension*/
  196. };
  197.  
  198. typedef struct Intl1Rec Intl1Rec;
  199. typedef Intl1Rec *Intl1Ptr, **Intl1Hndl;
  200.  
  201.  
  202. #ifdef __cplusplus
  203. extern "C" {
  204. #endif
  205. pascal void InitPack(short packID)
  206.  = 0xA9E5; 
  207. pascal void InitAllPacks(void)
  208.  = 0xA9E6; 
  209.  
  210. pascal Handle IUGetIntl(short theID)
  211.  = {0x3F3C,0x0006,0xA9ED}; 
  212. pascal void IUSetIntl(short refNum,short theID,Handle intlHandle)
  213.  = {0x3F3C,0x0008,0xA9ED}; 
  214. pascal void IUDateString(long dateTime,DateForm longFlag,Str255 result)
  215.  = {0x4267,0xA9ED}; 
  216. pascal void IUDatePString(long dateTime,DateForm longFlag,Str255 result,
  217.  Handle intlHandle)
  218.  = {0x3F3C,0x000E,0xA9ED}; 
  219. pascal void IUTimeString(long dateTime,Boolean wantSeconds,Str255 result)
  220.  = {0x3F3C,0x0002,0xA9ED}; 
  221. pascal void IUTimePString(long dateTime,Boolean wantSeconds,Str255 result,
  222.  Handle intlHandle)
  223.  = {0x3F3C,0x0010,0xA9ED}; 
  224. pascal Boolean IUMetric(void)
  225.  = {0x3F3C,0x0004,0xA9ED}; 
  226. void iudatestring(long dateTime,DateForm longFlag,char *result); 
  227. void iudatepstring(long dateTime,DateForm longFlag,char *result,Handle intlHandle); 
  228. void iutimestring(long dateTime,Boolean wantSeconds,char *result); 
  229. void iutimepstring(long dateTime,Boolean wantSeconds,char *result,Handle intlHandle); 
  230.  
  231. pascal short IUMagString(const void *aPtr,const void *bPtr,short aLen,short bLen)
  232.  = {0x3F3C,0x000A,0xA9ED}; 
  233. pascal short IUMagIDString(const void *aPtr,const void *bPtr,short aLen,
  234.  short bLen)
  235.  = {0x3F3C,0x000C,0xA9ED}; 
  236. pascal short IUCompString(ConstStr255Param aStr,ConstStr255Param bStr); 
  237. pascal short IUEqualString(ConstStr255Param aStr,ConstStr255Param bStr); 
  238. short iucompstring(char *aStr,char *bStr); 
  239. short iuequalstring(char *aStr,char *bStr); 
  240.  
  241. pascal void StringToNum(ConstStr255Param theString,long *theNum); 
  242. void stringtonum(char *theString,long *theNum); 
  243. pascal void NumToString(long theNum,Str255 theString); 
  244. void numtostring(long theNum,char *theString); 
  245.  
  246. pascal void IULDateString(LongDateTime *dateTime,DateForm longFlag,Str255 result,
  247.  Handle intlHandle)
  248.  = {0x3F3C,0x0014,0xA9ED}; 
  249. pascal void IULTimeString(LongDateTime *dateTime,Boolean wantSeconds,Str255 result,
  250.  Handle intlHandle)
  251.  = {0x3F3C,0x0016,0xA9ED}; 
  252. void iuldatestring(LongDateTime *dateTime,DateForm longFlag,char *result,
  253.  Handle intlHandle); 
  254. void iultimestring(LongDateTime *dateTime,Boolean wantSeconds,char *result,
  255.  Handle intlHandle); 
  256. pascal void IUClearCache(void)
  257.  = {0x3F3C,0x0018,0xA9ED}; 
  258. pascal short IUMagPString(const void *aPtr,const void *bPtr,short aLen,
  259.  short bLen,Handle itl2Handle)
  260.  = {0x3F3C,0x001A,0xA9ED}; 
  261. pascal short IUMagIDPString(const void *aPtr,const void *bPtr,short aLen,
  262.  short bLen,Handle itl2Handle)
  263.  = {0x3F3C,0x001C,0xA9ED}; 
  264. pascal short IUCompPString(ConstStr255Param aStr,ConstStr255Param bStr,
  265.  Handle itl2Handle); 
  266. pascal short IUEqualPString(ConstStr255Param aStr,ConstStr255Param bStr,
  267.  Handle itl2Handle); 
  268. pascal short IUScriptOrder(ScriptCode script1,ScriptCode script2)
  269.  = {0x3F3C,0x001E,0xA9ED}; 
  270. pascal short IULangOrder(LangCode language1,LangCode language2)
  271.  = {0x3F3C,0x0020,0xA9ED}; 
  272. pascal short IUTextOrder(const void *aPtr,const void *bPtr,short aLen,short bLen,
  273.  ScriptCode aScript,ScriptCode bScript,LangCode aLang,LangCode bLang)
  274.  = {0x3F3C,0x0022,0xA9ED}; 
  275. pascal short IUStringOrder(ConstStr255Param aStr,ConstStr255Param bStr,
  276.  ScriptCode aScript,ScriptCode bScript,LangCode aLang,LangCode bLang); 
  277. pascal void IUGetItlTable(ScriptCode script,short tableCode,Handle *itlHandle,
  278.  long *offset,long *length)
  279.  = {0x3F3C,0x0024,0xA9ED}; 
  280. short iucomppstring(char *aStr,char *bStr,Handle intlHandle); 
  281. short iuequalpstring(char *aStr,char *bStr,Handle intlHandle); 
  282. short iustringorder(char *aStr,char *bStr,ScriptCode aScript,ScriptCode bScript,
  283.  LangCode aLang,LangCode bLang); 
  284. #ifdef __cplusplus
  285. }
  286. #endif
  287.  
  288. #endif
  289.